#include <iostream>
#include <algorithm>
using namespace std;
constexpr int MAXN = 20;
int n, A[MAXN], k;
void dfs(int sum, int rest, int pointer);
bool finded = false;
int main() {
    #ifndef ONLINE_JUDGE
    freopen("./input.txt", "r", stdin);
    // freopen("./out.txt", "w", stdout);
    #endif
    cin >> n >> k;
    for (int i = 0; i < n; i++) cin >> A[i];
    for (int i = 0; i < n; i++) {
        dfs(0, i + 1, 0);
        if (finded) {
            cout << "Founded" << endl;
            return 0;
        }
    }
    cout << "Not Founded" << endl;
    return 0;
}

// 这个算法应该可以更加优化, 也就是我们不需要再约定
void dfs(int sum, int rest, int pointer) {
    if (sum == k) {
        finded = true;
        return; // 如果找到了的话直接返回true
    }
    if (pointer == n) return; // 到达了最后一个, 不再后退
    dfs(sum + A[pointer], rest - 1, pointer + 1);
    dfs(sum, rest, pointer + 1);
}

// 标答
bool dfs(int i, int sum) {
    if (i == n) return sum == k;
    // 不加上A[i]情况
    if (dfs(i + 1, sum)) return true;
    // 加上A[i]情况
    if (dfs(i + 1, sum + A[i])) return true;
    return false;

}